Consumers of video want the highest quality experience possible, including video at the highest resolution, the lowest compression, with the clearest image quality. However, the highest quality video requires transmitting large amounts of data at high rates with low latency and no packet loss. Most Internet connections are not capable of streaming video at its highest resolution and data rates due to bandwidth limitations. To overcome such limitations, various practices in the related art include encoding video at a variety of quality levels or bit rates, while minimizing effect to the viewer and/or content to allow the video to be enjoyed over a wide variety of Internet connection speeds.
Adaptive bit rate (ABR) streaming is one such known technique for streaming digital video over the Internet in situations involving limited bandwidth. The ABR streaming technique, such as MPEG-DASH, involves encoding a video into multiple different encodings, each at a different bit rate. Encodings at higher bit rates represent better video quality at the cost of more data which requires higher bandwidth to transmit. The video is typically broken up into chunks or shards, each containing a small portion of the video, each often corresponding to a few seconds. Thus, each encoding is created such that there are common shared points, also referred to as I-frames, which are aligned across all bitrate encoding, where each I-frame corresponds to a shard of the video. These I-frames permit seamless switching between different bit rate encoding streams without missing any shards of the video.
Video playback using the ABR technique involves selecting one of the bit rate encodings and attempting to transport the data over the available network. If the network is unable to transport the selected encoding at a rate which enables smooth playback, a lower bit rate encoding is selected and the video playback is transitioned at the next I-frame switch point. If it is determined that the network is able to transport the selected encoding at a rate which enables smooth playback, then the same encoding is continued to be selected, or a higher encoding is selected and transitioned at the next I-frame switch point.
At the time of encoding, the shards are broken and organized such that the playback device can switch to a different encoding level from a current encoding level by requesting the next shard of data of the different encoding level starting with the I-frame corresponding to the next I-frame of the current encoding. To facilitate this, the video file is often encoded by an encoder to produce two or more different quality encodings with each encoded version being broken up into shard files with aligned I-frames, and each shard following an iterative or logical naming scheme identifying the encoding and shard number. Therefore, in most applications, the playback device can merely iterate or cycle through the naming scheme of the encoding and shard addresses to receive a different encoding level or to request and receive the next shard for buffering and playback.
However, this limits the playback device to receiving encodings from only one encoding source, which provides encoder-specific package encodings comprising various bit rate encodings. Since encoding sources often have no affiliation or coordination with one another different encoding sources often include package encodings which are broken up and/or named differently. Thus, an encoding of a video from one package encoding will likely have shards and
I-frames which either do not align, or are incompatibly formatted with the shards and I-frames of another encoding of the same video from another package encoding. Thus, even if the video content selected to be played on the playback device is available from a large number of other package encodings via the Internet or other content source, thereby providing a large number of different encoding levels and options for playback, the playback device is able to only utilize the encodings of a single package encoding.
Given the ever expanding amount of content available to connected devices, the inability to fully utilize the available content information hampers the end user experience as devices are simply unable to provide content in the maximum or most optimum quality possible. Additionally, content providers may need to redundantly generate and provide package encodings of content at one or more particular encoding levels, even if the particular encoding levels for the same content are available from another package encodings, simply because playback devices are unable to switch between package encodings due to differences in naming conventions, shard and I-frame alignment, and the like, as discussed.
Thus, the existing systems and methods are unable to provide playback devices with the ability to maximally utilize video information from different package encodings of the same underlying video content. Therefore, it may be advantageous for a system and method to analyze affiliated content networks and package encodings to generate a mapping of aligned I-frames between two or more different package encodings.